<?php
/**
 * Created by PhpStorm.
 * User: thankful
 * Date: 2017/8/21
 * Time: 14:31
 */

namespace Think\Upload\Driver;


use Think\Upload\Driver\Upload\TKFile;

class Fastfds
{
    /**
     * 上传文件根目录
     * @var string
     */
    private $rootPath;

    /**
     * 上传错误信息
     * @var string
     */
    private $error = '';

//    private $config = array(
//        'secrectKey'     => '', //七牛服务器
//        'accessKey'      => '', //七牛用户
//        'domain'         => '', //七牛密码
//        'bucket'         => '', //空间名称
//        'timeout'        => 300, //超时时间
//    );
    /**
     * 检测上传根目录
     * @param string $rootpath 根目录
     * @return boolean true-检测通过，false-检测失败
     */
    public function checkRootPath($rootpath)
    {
        $this->rootPath = trim($rootpath, './') . '/';
        return true;
    }

    /**
     * 检测上传目录
     * @param  string $savepath 上传目录
     * @return boolean          检测结果，true-通过，false-失败
     */
    public function checkSavePath($savepath)
    {
        return true;
    }

    /**
     * 创建文件夹
     * @param  string $savepath 目录名称
     * @return boolean          true-创建成功，false-创建失败
     */
    public function mkdir($savepath)
    {
        return true;
    }

    /**
     * 构造函数，用于设置上传根路径
     * @param array $config FTP配置
     */
    public function __construct($config = null)
    {
        $this->config = array_merge($this->config, $config);
        /* 设置根目录 */
        $this->qiniu = new TKFile($config);
    }


    /**
     * 测试文件上传到fastdfs服务器
     * url填写服务器地址
     */
    public function save($file, $replace = true)
    {
        $uFile = $file;//获取上传文件
        $fp = $uFile['tmp_name'];
        $filetype = $uFile['type'];//文件类型
        $appid=C("THINK_SDK_WEIXIN.APP_KEY");
        $secretkey = C("THINK_SDK_WEIXIN.APP_SECRET");

        $data = array(
            'url' => 'http://fs.tong-kuai.com/api/Image/uploadFile',//上传地址
            'file' => $fp,//文件
            'post' => array(
                'suffix' => substr($filetype, 6),//保存文件后缀，不需要带 . 符号
                'appid' => "$appid",//后台注册认证过的appid才可以上传
                'secretkey' => "$secretkey",//密钥
            )
        );
        $res = TKFile::uploadFileTK($data);
        return $res;
    }

    /**
     * 测试文件上传到fastdfs服务器
     * url填写服务器地址
     */
    public function saves($file, $replace = true)
    {
        $filename = $this->rootPath . $file['savepath'] . $file['savename'];
        /* 不覆盖同名文件 */
        if (!$replace && is_file($filename)) {
            $this->error = '存在同名文件' . $file['savename'];
            return false;
        }

        /* 移动文件 */
        if (!move_uploaded_file($file['tmp_name'], $filename)) {
            $this->error = '文件上传保存错误！';
            return false;
        }

        return true;
    }

    /**
     * 获取最后一次上传错误信息
     * @return string 错误信息
     */
    public function getError()
    {
        return $this->qiniu->errorStr;
    }
}